package com.shop.cloud.domain.system;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.shop.cloud.common.mybatis.BaseEntity;

import lombok.EqualsAndHashCode;
import lombok.ToString;

@ToString(callSuper = true)
@EqualsAndHashCode
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler", "fieldHandler" }, ignoreUnknown = true)
public class SysUser extends BaseEntity{

	private static final long serialVersionUID = 1L;
    
	/**
	 * 性别：1男0女
	 */
    private Integer gender;
	/**
	 * 外键，所属部门Id
	 */
    private String departmentId;
	/**
	 * 最后更新时间
	 */
    private Timestamp updateDate;
	/**
	 * 是否删除：1是0否
	 */
    private Integer status;
    
    
    private Integer type;
	/**
	 * 是否管理员：1是0否
	 */
    private String phone;
	/**
	 * 登录密码
	 */
    @JsonIgnore
    private String password;
	/**
	 * 最后更新人
	 */
    private Long updateUser;
	 
    private String image;
	/**
	 * 姓名
	 */
    private String fullname;
	/**
	 * 记录生成人
	 */
    private Long createUser;
	/**
	 * 记录生成时间
	 */
    private Timestamp createDate;
	/**
	 * 登录用户名
	 */
    private String username;
    
    private String dept;
    /**
   	 * 所属企业
   	 */
    private String enterpriseId;
    
    private String enterprise;
    
    private String roleIds;
    
    private String roles;
    
    private String createUsername;
    
    private String updateUsername;
    
    private String idCard;
    
    private String equsername;
    
    private String positionId;
    
    //gmc
    
    //角色
    private Integer roleId;
    
    private String roleName;
    
    //职位
    private Integer spId;
    
    private String spName;
    
    //最新登录时间
    private Timestamp maxLoginTime;
    
  //开始时间
  	private Timestamp startTime;
  	
  	//结束时间
  	private Timestamp endTime;
  	
  	//数据权限判断 1可查看和编辑本店和下属店面的内容，2仅可查看编辑本店的内容
  	private Integer authority;
	
	private Long[] userIds;

	public Integer getAuthority() {
		return authority;
	}
	public Long[] getUserIds() {
		return userIds;
	}
	public void setUserIds(Long[] userIds) {
		this.userIds = userIds;
	}



	public void setAuthority(Integer authority) {
		this.authority = authority;
	}

	public Timestamp getStartTime() {
		return startTime;
	}

	public void setStartTime(Timestamp startTime) {
		this.startTime = startTime;
	}

	public Timestamp getEndTime() {
		return endTime;
	}

	public void setEndTime(Timestamp endTime) {
		this.endTime = endTime;
	}

	public Integer getRoleId() {
		return roleId;
	}

	public void setRoleId(Integer roleId) {
		this.roleId = roleId;
	}

	public String getRoleName() {
		return roleName;
	}

	public void setRoleName(String roleName) {
		this.roleName = roleName;
	}

	public Integer getSpId() {
		return spId;
	}

	public void setSpId(Integer spId) {
		this.spId = spId;
	}

	public String getSpName() {
		return spName;
	}

	public void setSpName(String spName) {
		this.spName = spName;
	}

	public Timestamp getMaxLoginTime() {
		return maxLoginTime;
	}

	public void setMaxLoginTime(Timestamp maxLoginTime) {
		this.maxLoginTime = maxLoginTime;
	}

	public String getPositionId() {
		return positionId;
	}

	public void setPositionId(String positionId) {
		this.positionId = positionId;
	}

	public String getEqusername() {
		return equsername;
	}

	public void setEqusername(String equsername) {
		this.equsername = equsername;
	}

	public SysUser(){}
    
    public Integer getType() {
		return type;
	}

	public void setType(Integer type) {
		this.type = type;
	}

	public String getIdCard() {
		return idCard;
	}

	public void setIdCard(String idCard) {
		this.idCard = idCard;
	}



	public String getCreateUsername() {
		return createUsername;
	}

	public void setCreateUsername(String createUsername) {
		this.createUsername = createUsername;
	}

	public String getUpdateUsername() {
		return updateUsername;
	}

	public void setUpdateUsername(String updateUsername) {
		this.updateUsername = updateUsername;
	}

	public String getRoleIds() {
		return roleIds;
	}

	public void setRoleIds(String roleIds) {
		this.roleIds = roleIds;
	}

	public String getEnterpriseId() {
		return enterpriseId;
	}

	public void setEnterpriseId(String enterpriseId) {
		this.enterpriseId = enterpriseId;
	}

	public String getEnterprise() {
		return enterprise;
	}

	public void setEnterprise(String enterprise) {
		this.enterprise = enterprise;
	}

	public String getDept() {
		return dept;
	}

	public void setDept(String dept) {
		this.dept = dept;
	}

	public String getRoles() {
		return roles;
	}

	public void setRoles(String roles) {
		this.roles = roles;
	}

	public Integer getGender() {
        return this.gender;
    }
    
    public void setGender(Integer gender) {
        this.gender = gender;
    }
    public String getDepartmentId() {
        return this.departmentId;
    }
    
    public void setDepartmentId(String departmentId) {
        this.departmentId = departmentId;
    }
    public Timestamp getUpdateDate() {
        return this.updateDate;
    }
    
    public void setUpdateDate(Timestamp updateDate) {
        this.updateDate = updateDate;
    }
    public Integer getStatus() {
        return this.status;
    }
    
    public void setStatus(Integer isDelete) {
        this.status = isDelete;
    }
    public String getPhone() {
        return this.phone;
    }
    
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getPassword() {
        return this.password;
    }
    
    public void setPassword(String password) {
        this.password = password;
    }
    public Long getUpdateUser() {
        return this.updateUser;
    }
    
    public void setUpdateUser(Long updateUser) {
        this.updateUser = updateUser;
    }
    public String getImage() {
        return this.image;
    }
    
    public void setImage(String isLock) {
        this.image = isLock;
    }
    public String getFullname() {
        return this.fullname;
    }
    
    public void setFullname(String fullname) {
        this.fullname = fullname;
    }
    public Long getCreateUser() {
        return this.createUser;
    }
    
    public void setCreateUser(Long createUser) {
        this.createUser = createUser;
    }
    public Timestamp getCreateDate() {
        return this.createDate;
    }
    
    public void setCreateDate(Timestamp createDate) {
        this.createDate = createDate;
    }
    public String getUsername() {
        return this.username;
    }
    
    public void setUsername(String username) {
        this.username = username;
    }
    
	
	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}
}